Source code for berhoel.django.media_ooimport.console._helper

#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""Helper functionalities for media_ooimport.
"""

# First party library imports.
from berhoel.django.media.models import Broadcast, Streaming, RentalVideo, TheatreVisit

# Local library imports.
from ..models import (
    SaveLine,
    NameMediaMap,
    NameCinemaMap,
    NameRentalMap,
    NameStreamingServiceMap,
)

__date__ = "2022/08/13 17:40:06 hoel"
__author__ = "Berthold Höllmann"
__copyright__ = "Copyright © 2020 by Berthold Höllmann"
__credits__ = ["Berthold Höllmann"]
__maintainer__ = "Berthold Höllmann"
__email__ = "berhoel@gmail.com"
__scm_version__ = "$Revision$"[10:-1]


[docs]def get_media(media, index, name, season=None, subseason=None): "Determine media information." r_index = None if media.link is not None: media = SaveLine.objects.get(line=int(media.link.get("line"))).dvd media.name = name media.season = season media.sub_season = subseason try: r_index = None if index is None else int(index) except ValueError: r_index = None elif station := NameMediaMap.objects.filter(name=index): assert len(station) == 1, f"{index=} {media=}" media = Broadcast( broadcast_service=station[0].media.broadcast_service, name=name, season=season, sub_season=subseason, ) elif cinema := NameCinemaMap.objects.filter(name=index): assert len(cinema) == 1, f"{index=} {cinema=}" media = TheatreVisit.objects.get_or_create( theatre=cinema[0].person, price=media.float, name=name, )[0] elif rental := NameRentalMap.objects.filter(name=index): assert len(rental) == 1, f"{index=} {rental=}" media = RentalVideo.objects.get_or_create( company=rental[0].person, price=media.float, name=name, season=season, sub_season=subseason, )[0] elif service := NameStreamingServiceMap.objects.filter(name=index): assert len(service) == 1, f"{index=} {service=}" media = Streaming.objects.get_or_create( streaming_service=service[0].person, name=name, season=season, sub_season=subseason, )[0] else: raise ValueError(f"{name=} {index=} {media.text=}") media.save() return media, r_index
# Local Variables: # mode: python # compile-command: "poetry run tox" # time-stamp-pattern: "30/__date__ = \"%:y/%02m/%02d %02H:%02M:%02S %L\"" # End: